package main

import (
	"net"
	"net/rpc"
	"net/rpc/jsonrpc"
)

type HelloService struct {
}

//函数必须这样定义（参数类型）
func (s *HelloService) Hello(request string, reply *string) error {
	//返回值是通过修改replay的值
	*reply = "hello, " + request
	return nil
}

//将序列化协议换成json
func main() {
	// 1.实例化一个server
	listener, _ := net.Listen("tcp", ":1234")
	// 2.注册处理逻辑 handler
	_ = rpc.RegisterName("HelloService", &HelloService{})
	// 3.启动服务
	for {
		conn, _ := listener.Accept()                 //当一个新的链接进来的时候，
		go rpc.ServeCodec(jsonrpc.NewServerCodec(conn)) //编解码调整为json
	}

}
